 package com.attilax.office;
  
  import java.io.File;

import m.FileService;
  
import com.attilax.io.filex;
import com.attilax.net.websitex;
import com.attilax.util.god;
  import com.jacob.activeX.ActiveXComponent;
  import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
  
  public class WordToHtml {
  
      int WORD_HTML = 8;
      int WORD_TXT = 7;
      int EXCEL_HTML = 44;
  
      /**
       * WORD转HTML
       * 
       * @param docfile
       *            WORD文件全路径
       * @param htmlfile
       *            转换后HTML存放路径
       */
      public void wordToHtml(String docfile, String htmlfile) {
          ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word
          try {
              app.setProperty("Visible", new Variant(false));
              Dispatch docs = app.getProperty("Documents").toDispatch();
              Dispatch doc = Dispatch.invoke(
                      docs,
                      "Open",
                      Dispatch.Method,
                      new Object[] { docfile, new Variant(false),
                              new Variant(true) }, new int[1]).toDispatch();
              Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {
                      htmlfile, new Variant(WORD_HTML) }, new int[1]);
              Variant f = new Variant(false);
              Dispatch.call(doc, "Close", f);
          } catch (Exception e) {
              e.printStackTrace();
          } finally {
              app.invoke("Quit", new Variant[] {});
          }
      }
  
      /**
       * o3g
       * @param docfile
       * @return
       */
      public static  String wordToTxt(String docfile ) 
      {WordToHtml w=new WordToHtml();
    	  
    	  String htmlfile = "c:\\"+god.getUUid()+".htm";
		w.wordToHtml(docfile,htmlfile);
    	  String html=filex.read(htmlfile,"gbk");
    	  String s=	websitex.html2txt(html);
		return s;
    	  
      }
      /**
       * EXCEL转HTML
       * 
       * @param xlsfile
       *            EXCEL文件全路径
       * @param htmlfile
       *            转换后HTML存放路径
       */
      public void excelToHtml(String xlsfile, String htmlfile) {
          ActiveXComponent app = new ActiveXComponent("Excel.Application"); // 启动excel
          try {
              app.setProperty("Visible", new Variant(false));
              Dispatch excels = app.getProperty("Workbooks").toDispatch();
              Dispatch excel = Dispatch.invoke(
                      excels,
                      "Open",
                      Dispatch.Method,
                      new Object[] { xlsfile, new Variant(false),
                              new Variant(true) }, new int[1]).toDispatch();
              Dispatch.invoke(excel, "SaveAs", Dispatch.Method, new Object[] {
                      htmlfile, new Variant(EXCEL_HTML) }, new int[1]);
              Variant f = new Variant(false);
              Dispatch.call(excel, "Close", f);
              System.out.println("wordtohtml转换成功");
          } catch (Exception e) {
              e.printStackTrace();
          } finally {
              app.invoke("Quit", new Variant[] {});
          }
      }
  
      /**
       * /删除指定文件夹
       * 
       * @param folderPath
       *            文件夹全路径
       * @param htmlfile
       *            转换后HTML存放路径
       */
      public void delFolder(String folderPath) {
          try {
              delAllFile(folderPath); // 删除完里面所有内容
              String filePath = folderPath;
              filePath = filePath.toString();
              java.io.File myFilePath = new java.io.File(filePath);
              myFilePath.delete(); // 删除空文件夹
          } catch (Exception e) {
              e.printStackTrace();
          }
      }
  
      /**
       * /删除指定文件夹下所有文件
       * 
       * @param path
       *            文件全路径
       */
      public boolean delAllFile(String path) {
          boolean flag = false;
          File file = new File(path);
          if (!file.exists()) {
              return flag;
          }
          if (!file.isDirectory()) {
              return flag;
          }
          String[] tempList = file.list();
          File temp = null;
          for (int i = 0; i < tempList.length; i++) {
              if (path.endsWith(File.separator)) {
                  temp = new File(path + tempList[i]);
              } else {
                  temp = new File(path + File.separator + tempList[i]);
              }
              if (temp.isFile()) {
                  temp.delete();
              }
              if (temp.isDirectory()) {
                  delAllFile(path + "/" + tempList[i]);// 先删除文件夹里面的文件
                  delFolder(path + "/" + tempList[i]);// 再删除空文件夹
                  flag = true;
              }
          }
          return flag;
      }
  
      public static void main(String[] args) {
          // TODO Auto-generated method stub
          WordToHtml wordtohtml = new WordToHtml();
          wordtohtml.wordToHtml("C:\\ccx\\spdb ca.doc", "c://test.html");
          System.out.println("word转html成功");
      }
  }
  